##### 23.3.3.13 Program Spaces In Guile

A program space, or progspace, represents a symbolic view of an address space. It consists of all of the objfiles of the program. See Objfiles In Guile. See program spaces, for more details about program spaces.

Each progspace is represented by an instance of the `<gdb:progspace>` smob. See GDB Scheme Data Types.

The following progspace-related functions are available in the `(gdb)` module:

— Scheme Procedure: progspace? object

> Return `#t` if object is a `<gdb:progspace>` object. Otherwise return `#f`.

— Scheme Procedure: progspace-valid? progspace

> Return `#t` if progspace is valid, `#f` if not. A `<gdb:progspace>` object can become invalid if the program it refers to is not loaded in gdb any longer.

— Scheme Procedure: current-progspace

> This function returns the program space of the currently selected inferior. There is always a current progspace, this never returns `#f`. See Inferiors and Programs.

— Scheme Procedure: progspaces

> Return a list of all the progspaces currently known to gdb.

— Scheme Procedure: progspace-filename progspace

> Return the absolute file name of progspace as a string. This is the name of the file passed as the argument to the `file` or `symbol-file` commands. If the program space does not have an associated file name, then `#f` is returned. This occurs, for example, when gdb is started without a program to debug.

> A `gdb:invalid-object-error` exception is thrown if progspace is invalid.

— Scheme Procedure: progspace-objfiles progspace

> Return the list of objfiles of progspace. The order of objfiles in the result is arbitrary. Each element is an object of type `<gdb:objfile>`. See Objfiles In Guile.

> A `gdb:invalid-object-error` exception is thrown if progspace is invalid.

— Scheme Procedure: progspace-pretty-printers progspace

> Return the list of pretty-printers of progspace. Each element is an object of type `<gdb:pretty-printer>`. See Guile Pretty Printing API, for more information.

— Scheme Procedure: set-progspace-pretty-printers! progspace printer-list

> Set the list of registered `<gdb:pretty-printer>` objects for progspace to printer-list. See Guile Pretty Printing API, for more information.